For almost all breakpoints, the setting command takes the format:
BP?? <parameters> [IF (conditions)] [DO "statement"]
and the first 2 character 'BP' can be replaced with 'GO':
GO?? <parameters> [IF (conditions)] [DO "statement"]
to set a single instance breakpoint. TRW2000 will set the breakpoint, go, and clear it after the break.
Conditions must be enclosed in (). The condition support
Operator Meaning == Logical Equal != Logical Not equal > Logical Greater than >= Logical Greater than or equal to < Logical Less than <= Logical Less than or equal to & Bit and | Bit or ^ Bit xor >> Bit shift right << Bit shift left ;not support ! Logical NOT && Logical AND || Logical OR + add - sub * mul / division % mod () parenthesis (byte) (word) (dword) * get value from point + positive - negativeEx:g if ((byte)*eip==c2) g if (*esp==ebx) go if (eip>401000&&eip<<10000000)For unregister version, the condition expression can not be very long.
The <statement> can be any valid TRW2000 command. It must enclosed in quotation marks.
Ex:
BPX cs:401000 if (eax>200) do "d eax"
GOX 401000 if (cs!=28) do "d ss:esp"
G if (eip<1000)
TRW2000 support soft breakpoint like
g if (conditions)
go if (conditions)
bp if (conditions)that is, breakpoint without address, with only conditions. If you set a this kind of breakpoint and run, TRW2000 will run the program step by step, and check the condition for each step.